Перейти к основному содержимому

SDK для Unity

Обзор

SDK WebAR³ VPS для Unity локализует пользователей внутри подготовленных карт VPS и позволяет размещать контент с сантиметровой точностью на устройствах ARKit и ARCore. Ниже — привычная для Immersal структура: проверьте требования, установите пакет, настройте сцену и запустите локализацию.

Требования

  • Unity 2022.3 LTS или новее
  • Тестовое устройство с поддержкой ARKit либо ARCore
  • Git LFS, если вы клонируете пример проекта с крупными ассетами

Варианты установки

Клонировать пример проекта

git clone https://github.com/WebAR-Studio/was-vps-unity.git

Откройте проект в Unity 2022.3+. В папке Assets/Scenes находятся готовые сцены.

Добавить через Package Manager

  1. Откройте Window → Package Manager.
  2. Нажмите + → Add package from Git URL….
  3. Вставьте https://github.com/WebAR-Studio/was-vps-unity.git?path=/Assets.

Unity загрузит SDK в Packages/was-vps-unity.

Настройка проекта

  1. Создайте или откройте сцену на базе AR Foundation (с объектами AR Session и AR Session Origin).
  2. Добавьте VPSLocalisationService на пустой GameObject — он будет выполнять цикл локализации.
  3. Укажите ссылки в инспекторе:
    • AR Session
    • AR Session Origin
    • при необходимости AR-камеру и UI, как в примерах.
  4. Заполните поле API Key и добавьте минимум один Location ID.

    Нужен API ключ? Получите его на space.web-ar.studio или напишите на support@webar3.com / support@web-ar.studio.

  5. (Опционально) включите Save Images Locally или Save Logs In File при отладке.

Запуск локализации

SDK предоставляет простой API для управления локализацией из скриптов. Добавьте компонент ниже и передайте ссылку на VPSLocalisationService в инспекторе.

using UnityEngine;
using WASVPS;

public class VPSBootstrap : MonoBehaviour
{
[SerializeField] private VPSLocalisationService vpsService;

private void Start()
{
vpsService.OnPositionUpdated += HandlePositionUpdated;
vpsService.OnErrorHappend += HandleError;

var settings = new SettingsWASVPS(
new[] { "your-location-id" },
failsCountToReset: 5
);

settings.ApiKey = "your-api-key";
settings.LocalizationTimeout = 2.0f;

vpsService.StartVPS(settings);
}

private void HandlePositionUpdated(LocationState state)
{
Debug.Log($"Localized at {state.Localisation.VpsPosition}");
}

private void HandleError(ErrorInfo error)
{
Debug.LogError(error.LogDescription());
}
}

Поля в инспекторе

ПараметрНазначениеЗначение по умолчанию
Start On AwakeАвтоматически запускать локализацию при загрузке сценыfalse
Force Mock In EditorИспользовать мок-провайдер в редакторе Unitytrue
Send GPSОтправлять данные GPS в каждом запросеfalse
Fails Count To ResetКоличество подряд неудачных попыток до сброса сессии5
Save Images LocallyСохранять отправленные кадры локально для отладкиfalse

Отладка и тестирование

  • Включите Force Mock In Editor и используйте тестовые текстуры, чтобы отлаживать без устройства.
  • Вызовите VPSLogger.SetLogLevel(LogLevel.VERBOSE), чтобы просматривать HTTP-запросы, ответы и ошибки.
  • Если локализация не запускается, убедитесь, что API-ключ действителен и Location ID соответствует опубликованной карте.

Что дальше

  • Изучите Assets/Scenes/TestScene.unity и Assets/Scripts/ExampleVPS.cs в примерном проекте.
  • Используйте позы VPS для создания якорей, размещения контента и синхронизации UI.